#pragma once
#include "IObject.h"


struct IManagedRuntimeHost :
	public IObject
{

public: 
	virtual HRESULT SetHtmlAccessEnabled(XUINT32) = 0;
	virtual HRESULT GetCoreServices(struct ICoreServices * *) = 0;
	virtual HRESULT GetBrowserService(struct IBrowserService * *, XUINT32 *) = 0;
	virtual HRESULT IsCrossDomainSource(XUINT32 *) = 0;
	virtual HRESULT ReleaseHandle(const void *) = 0;
	virtual HRESULT CreateCallback(const void *, struct IDelegate * *) = 0;
	virtual HRESULT CreateManagedObject(const void *, XINT32, struct IManagedObject * *) = 0;
	virtual HRESULT InvokeDelegate(const void *, XINT32, struct ScriptParam *, struct ScriptParam *) = 0;
	virtual HRESULT RegisterScriptableObject(XUINT16 *, void *) = 0;
	virtual HRESULT UnregisterScriptableObject(XUINT16 *) = 0;
	virtual HRESULT NotifyError(XUINT16 *) = 0;
	virtual HRESULT GetScriptableMemberInfo(const void *, XINT32, XINT32 *, XINT32 *, XUINT32 *, XUINT16 *) = 0;
	virtual HRESULT InvokeScriptableMember(const void *, XINT32, XINT32, XINT32, struct ScriptParam *, struct ScriptParam *, struct ScriptExceptionInfo *) = 0;

};